package com.ruoyi.backend.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 任务（客户发布）对象 t_task
 * 
 * @author wjr
 * @date 2025-09-23
 */
public class Task extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务ID */
    private Integer id;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 任务描述 */
    @Excel(name = "任务描述")
    private String taskInfo;

    /** 发布人ID */
    @Excel(name = "发布人ID")
    private Integer publishId;

    /** 发布人姓名 */
    @Excel(name = "发布人姓名")
    private String publishName;

    /** 发布人电话 */
    @Excel(name = "发布人电话")
    private String publishPhone;

    /** 所属服务ID */
    @Excel(name = "所属服务ID")
    private Integer serviceId;

    /** 所属服务名称 */
    @Excel(name = "所属服务名称")
    private String serviceName;

    /** 任务价格 */
    @Excel(name = "任务价格")
    private BigDecimal taskPrice;

    /** 任务类型：1=一口价，2=普通 */
    @Excel(name = "任务类型：1=一口价，2=普通")
    private Integer taskType;

    /** 任务开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskDateStart;

    /** 任务结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskDateEnd;

    /** 任务地址 */
    @Excel(name = "任务地址")
    private String taskAddress;

    /** 任务生效截止日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务生效截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskEffectDeadline;

    /** 任务状态：1=发布，2=审核，3=竞标，10=冻结，20=终结 */
    @Excel(name = "任务状态：1=发布，2=已审核，3=竞标，4=完成，10=冻结，20=失效")
    private Integer taskStatus;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }

    public void setTaskName(String taskName) 
    {
        this.taskName = taskName;
    }

    public String getTaskName() 
    {
        return taskName;
    }

    public void setTaskInfo(String taskInfo) 
    {
        this.taskInfo = taskInfo;
    }

    public String getTaskInfo() 
    {
        return taskInfo;
    }

    public void setPublishId(Integer publishId) 
    {
        this.publishId = publishId;
    }

    public Integer getPublishId() 
    {
        return publishId;
    }

    public void setPublishName(String publishName) 
    {
        this.publishName = publishName;
    }

    public String getPublishName() 
    {
        return publishName;
    }

    public void setPublishPhone(String publishPhone) 
    {
        this.publishPhone = publishPhone;
    }

    public String getPublishPhone() 
    {
        return publishPhone;
    }

    public void setServiceId(Integer serviceId) 
    {
        this.serviceId = serviceId;
    }

    public Integer getServiceId() 
    {
        return serviceId;
    }

    public void setServiceName(String serviceName) 
    {
        this.serviceName = serviceName;
    }

    public String getServiceName() 
    {
        return serviceName;
    }

    public void setTaskPrice(BigDecimal taskPrice) 
    {
        this.taskPrice = taskPrice;
    }

    public BigDecimal getTaskPrice() 
    {
        return taskPrice;
    }

    public Integer getTaskType() {
        return taskType;
    }

    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    public void setTaskDateStart(Date taskDateStart)
    {
        this.taskDateStart = taskDateStart;
    }

    public Date getTaskDateStart() 
    {
        return taskDateStart;
    }

    public void setTaskDateEnd(Date taskDateEnd) 
    {
        this.taskDateEnd = taskDateEnd;
    }

    public Date getTaskDateEnd() 
    {
        return taskDateEnd;
    }

    public void setTaskAddress(String taskAddress) 
    {
        this.taskAddress = taskAddress;
    }

    public String getTaskAddress() 
    {
        return taskAddress;
    }

    public void setTaskEffectDeadline(Date taskEffectDeadline) 
    {
        this.taskEffectDeadline = taskEffectDeadline;
    }

    public Date getTaskEffectDeadline() 
    {
        return taskEffectDeadline;
    }

    public void setTaskStatus(Integer taskStatus) 
    {
        this.taskStatus = taskStatus;
    }

    public Integer getTaskStatus() 
    {
        return taskStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("taskName", getTaskName())
            .append("taskInfo", getTaskInfo())
            .append("publishId", getPublishId())
            .append("publishName", getPublishName())
            .append("publishPhone", getPublishPhone())
            .append("serviceId", getServiceId())
            .append("serviceName", getServiceName())
            .append("taskPrice", getTaskPrice())
            .append("taskType", getTaskType())
            .append("taskDateStart", getTaskDateStart())
            .append("taskDateEnd", getTaskDateEnd())
            .append("taskAddress", getTaskAddress())
            .append("taskEffectDeadline", getTaskEffectDeadline())
            .append("taskStatus", getTaskStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
